home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / sharew / elektro / ortskurv / ortskurv.txt < prev    next >
Encoding:
Text File  |  1990-07-27  |  11.5 KB  |  198 lines

  1. ORTSKURVEN-ZEICHNER V1.1
  2. ------------------------
  3. Dieses Programm soll all diejenigen entlasten, die Ortskurven zeichnen wollen/
  4. müssen, und diese Tätigkeit öde und langweilig finden. Um in den vollen Genuß
  5. des Programms zu kommen, sind 1MB RAM, ein monochromer Monitor (je größer desto
  6. besser) und evtl. ein 24-Nadel-Drucker (NEC P6,P6+, C.Itoh 610, OKI 393,...)
  7. notwendig. Ein arithmetischer Coprozessor ist besonders bei umfangreichen Funk-
  8. tionen sehr nützlich.
  9.  
  10. Das Programm
  11. ------------
  12. Es zeichnet Ortskurven von beliebigen, in UPN-Notation eingegebenen komplexen
  13. Funktionen. Die Zeichnungen können in 4 verschiedenen Formaten ausgeführt
  14. werden: Fenster (Inhalt des größten darstellbaren Fensters), STAD (640x400, 
  15. zum Nachbearbeiten mit Zeichenprogrammen), DIN A5 quer und DIN A4. Ein Pixel
  16. entspricht dabei 1/180 Zoll im Quadrat (24-Nadler...). Funktionen werden dabei
  17. immer in Abhängigkeit einer Variablen gezeichnet (x), es können aber vier Kon-
  18. stanten deklariert werden, so daß es auch möglich ist Funktionenscharen zu
  19. zeichnen.
  20.  
  21. Das Menu
  22. --------
  23. Es gibt fünf Einträge in der Menuleiste:
  24.  
  25. Desk           - Programminfo und Accessories
  26. Ein-/Ausgabe   - Funktion eingeben (spricht für sich)
  27.                - Funktion speichern (Funktion wird als ASCII-Text gespeichert,
  28.                                      den man auch manuell nachedieren kann)
  29.                - Funktion laden (...)
  30.                - Ausdruck (es wird der eingestellte Bereich des internen DIN-A4
  31.                            Speichers ausgedruckt - Achtung: es wird links ein
  32.                            Rand von 5/6 Zoll für Lochungen etc. gelassen)
  33.                - STAD speichern (es wird der linke obere 640x400 Pixel große
  34.                                  Teil des internen DIN-A4-Speichers im DOODLE-
  35.                                  Format gespeichert - 400 Zeilen à 80 Bytes=32K)
  36. Parameter      - Werte (hier können verschiedene Werte für die Funktion einge-
  37.                         stellt werden, genaueres später)
  38.                - Fenster (begrenzt den Zeichenbereich auf den maximalen Inhalt
  39.                           des Fensters)
  40.                - 640x400 (begrenzt den Zeichenbereich auf 640x400 Pixel)
  41.                - 1440x1000 (begrenzt ... DIN A5 quer)
  42.                - 1440x2000 (begrenzt ... DIN A4)
  43.                - Rasterlinien (falls abgehakt, wird beim Zeichnen der Achsen
  44.                                ein Kästchenmuster mitgezeichnet - wichtig für's
  45.                                quantitative Auswerten der Zeichnung)
  46. Ortskurve      - Achsen zeichen (zeichnet die Koordinatenachsen für den momentan
  47.                                  eingestellten Real- und Imaginärbereich, muß
  48.                                  immer vor der ersten Zeichnung angewählt werden
  49.                                  hab' ich aber extra nicht automatisch gemacht,
  50.                                  damit man mehrere Funktionen in ein Diagramm
  51.                                  zeichnen kann.)
  52.                - Wert ausrechnen (geht in den Taschenrechnermodus, mit dem man
  53.                                   z.B. die Funktion testen kann. Dazu muß der 
  54.                                   x-Parameter eingegeben werden, der Funktions-
  55.                                   wert wird dann in Re/Im-Schreibweise und polar
  56.                                   ausgegeben.)
  57.                - Automatik (startet den Zeichenvorgang und versucht dabei die
  58.                             Zeichenrichtung richtig zu wählen)
  59.                - xmin->xmax... (eigene Wahl der Richtung, falls Automatik ver-
  60.                                 sagt - Erklärung später)
  61. Beschriftung   - Beschriften (hiermit kann man beliebige Texte in das Diagramm
  62.                               eintragen, Sonderzeichen können durch Anklicken
  63.                               derselben angewählt werden. Nicht wundern, wenn
  64.                               anstatt einem Pfeil in der Eingabezeile ein ATARI-
  65.                               Symbol erscheint->Überraschung ! Nach RETURN kann
  66.                               der Text mit der linken Maustaste im Fenster
  67.                               plaziert werden, die rechte Maustaste bricht ab.)
  68.                - Ortskurve markieren (hiermit kann man kleine Marken an die
  69.                                       Ortskurve antragen. Nach der Eingabe einer
  70.                                       Zahl und Drücken von RETURN erscheint die
  71.                                       Marke am Bildschirm. Falls der Platz ge-
  72.                                       fällt, kann man die Marke mit SETZEN fix-
  73.                                       ieren.)
  74.                - Bezifferungsgerade (hiermit kann man eine Bezifferungsgerade,
  75.                                      also eine Tangente an die Ortskurve in den
  76.                                      Punkten ±∞ eintragen. Bedienung wie beim
  77.                                      Markieren der Ortskurve.)
  78.                - Bez.gerade markieren (hiermit kann man die Bezifferungsgerade
  79.                                        markieren. Bedienung wie beim Markieren
  80.                                        der Ortskurve.)
  81.  
  82. Der Rest
  83. --------
  84.  
  85.  Falls jemand keine Ahnung von komplexen Zahlen hat, sollte er jetzt erst mal
  86. nachlesen was das ist !
  87.  
  88. UPN:
  89.  Ursprünglich fast in Vergessenheit geraden, wurde diese Möglichkeit Funktionen
  90. darzustellen von Hewlett Packard wieder salonfähig gemacht (man denke an die
  91. beliebten wissenschaftlichen Taschenrechner jener Firma). Der Vorteil liegt
  92. darin, daß zur Darstellung komplizierter Funktionen keinerlei Klammern benötigt
  93. werden. Das hat natürlich Vorteile für den Rechner, da er keine verschachtelten
  94. Klammern mehr zu interpretieren braucht, sondern nur noch eine Anweisung nach
  95. der anderen abzuarbeiten braucht. Dahingehend schaut die Funktionseingabe auch
  96. nicht wie bei anderen Programmen aus (sondern anfangs etwas verwirrend). Ein
  97. weiterer Gesichtspunkt ist die Verwendung des Stacks: stellen Sie sich vor, Sie
  98. wollen 1/(1+7) ausrechnen. In UPN nimmt man dazu die 1 schreibt sie auf einen
  99. Zettel und legt ihn als unterstes Element unseres Papierstapels hin. Nun
  100. schreibt man noch einen Zettel mit der 1, legt den auf den Stapel, und schließ-
  101. lich legt man noch einen Zettel mit der 7 darauf. Nun wird's interessant:
  102. Wir addieren die beiden oberen Zettel (also 1 und 7) und legen das Ergebnis (8)
  103. anstatt der beiden Zettel auf den Stack. Nun dividieren wir den zweitobersten
  104. Zettel durch den obersten (1/8) und legen das Ergebnis als neuen Zettel hin.
  105. Fertig ! Gut, das mag jetzt kompliziert klingen aber der Rechner kann die Sache
  106. mit den Zetteln viel besser als Sie, denn RAM kann man sehr schnell lesen und
  107. schreiben (Sie wären wahrscheinlich die ganze Zeit damit beschäftigt, alte Zet-
  108. tel dem Altpapierrecycling zuzuführen...).
  109.  Die Dialogbox zur Funktionseingabe sieht auf den ersten Blick wie ein Filese-
  110. lektor - Ähnlichkeit nicht beabsichtigt. Man kann in der Funktion rauf- und
  111. runterfahren, Zeilen einfügen und löschen, die Syntax der Funktion prüfen lassen
  112. und die ganze Funktion löschen lassen.
  113. Erlaubte Funktionen:
  114. x,a,b,c,d,pi,123.456 - legt die jeweiligen Werte im Format n+j0 auf den Stack
  115. ^2,1/x,sqrt          - quadriert, bildet den Kehrwert bzw. die Wurzel (Achtung !
  116.                        Dies sind alles komplexe Werte, d.h. für die Wurzel wird
  117.                        nur der erste Wert angegeben !)
  118. dup                  - dupliziert den obersten Stackeintrag
  119. x<>y                 - vertauscht die beiden obersten Stackeinträge
  120. +/-                  - wechselt das Vorzeichen des obersten Stackeintrags
  121. +,-,/,*              - die Grundrechenarten
  122. complex              - Bildet eine komplexe Zahl aus den beiden obersten Stack-
  123.                        einträgen. Der oberste wird dabei der Imaginärteil.
  124. polar                - wie 'complex', aber in Polardarstellung. Der oberste
  125.                        Stackeintrag wird dabei der Winkel.
  126. betr                 - berechnet den Betrag der obersten Zahl und legt ihn als
  127.                        betr+j0 wieder ab.
  128. arg                  - berechnet das Argument in Radiant. Das Ergebnis wird wie
  129.                        bei betr als arg+j0 abgelegt.
  130.  
  131. Werte:
  132.  In Menu Werte kann man den angezeigten Bereich für Real- und Imaginärteil
  133. (REmin,REmax,IMmin,IMmax), den von x durchlaufenen Bereich (Xmin,Xmax) sowie
  134. die vier möglichen Konstanten deklarieren (a-d). Für alle Werte gilt dabei:
  135. -9999999.9999 < X < 9999999.9999. Zusätzlich kann man die 'Rasterzone' ein-
  136. stellen. Dazu muß noch ein Wort über den Zeichenalgorithmus des Programms ver-
  137. loren werden: Da Ortskurven oft für einen sehr großen Bereich gezeichnet werden
  138. (z.B. 0<x<∞) muß das Programm natürlich versuchen Stellen des Graphen, in denen
  139. nichts geschieht, möglichst schnell zu überwinden. Daher ändert das Programm
  140. laufend seine Zeichenschrittweite. Nun kann es aber passieren, daß die Schritt-
  141. weite so groß wird, daß interessante Bereiche des Graphen überlaufen werden. Die
  142. Zeichenautomatik versucht zwar dies zu verhindern, aber es kann trotzdem schon
  143. mal passieren. Für diesen Fall können Sie die Zeichenrichtung selbst bestimmen.
  144. Mit der Rasterzone können Sie außerdem einen Bereich (in Pixeln) um den Graphen
  145. definieren, in dem das Programm die Schrittweite bereits reduziert, falls die
  146. Funktionswerte sich dem 'heißen' Bereich nähern.
  147.  
  148. Das Beispiel
  149. ------------
  150. Wie haben die Funktion 1/(1+jx^2) und möchten sie zeichnen:
  151. - wählen Sie Funktionseingabe an.
  152. - falls schon eine Funktion im Speicher ist, löschen Sie sie mit NEU.
  153. - nun geben Sie ein: 1 RETURN x RETURN complex RETURN 1/x RETURN
  154. - falls Ihnen erst jetzt auffällt, daß Sie das Quadrieren von x vergessen
  155.   haben, klicken Sie complex an, drücken auf EINFÜGEN und schreiben in die
  156.   neue Leerzeile ^2.
  157. - um sicher zu gehen, können Sie jetzt noch mit Check die Syntax testen. Dabei
  158.   werden außerdem noch Leerzeilen aus der Funktion entfernt.
  159. - verlassen Sie die Funktionseingabe
  160. - nun könnten Sie den Zeichenbereich einstellen. Gehen Sie dazu in das Menu
  161.   Werte. Dort stellen Sie am Besten 0<Re<1 und -1<I<0 ein.
  162. - lassen Sie die Achsen zeichnen
  163. - anklicken von Automatik sollte nun eine wunderschöne Ortskurve zeichnen
  164. - Fertig !
  165.  
  166. Die Tips
  167. --------
  168.  Da C normalerweise auch keine Ahnung hat, was komplexe Zahlen sind, mußte ich
  169. ihm zumindest ein paar Grundbegriffe beibringen. Dazu habe ich natürlich die
  170. einfachsten Algorithmen benutzt. Leider ist es nun aber so, daß für eine
  171. Addition die ReIm-Darstellung, für eine Division aber die Polardarstellung
  172. am einfachsten ist. Da die Umwandlung Zeit kostet (trigonometrische Funktionen)
  173. empfiehlt es sich, die Funktion so einzugeben, daß möglichst wenig Umwandlungen
  174. nötig sind !
  175.  
  176. Der Schluß
  177. ----------
  178. Das Programm wurde in Turbo-C V1.1 entwickelt. Vielen Dank an Georg Dittié,
  179. dessen universelle Diagrammzeichenroutine aus c't 2/90 ich zum Zeichnen der
  180. Achsen verwendet habe. Vielen Dank auch an Hewlett Packard, von deren HP42 ich
  181. die UPN-Syntax abgekupfert habe.
  182.  Das Programm ist PD, ...finanzielle Anerkennung...bla...blubber... Im Ernst -
  183. ich würde mich freuen, wenn jemand meine Arbeit zu würdigen weiß, und mir
  184. andere (brauchbare !) E-Technik-Software zusendet. Ich sende ihm dafür dann
  185. den Source-Code dieses Meisterwerks an C-Programmierung. Natürlich kann man
  186. mir auch schreiben, wenn man Fehler gefunden oder Vorschläge zu machen hat.
  187.  
  188.  Meine Adresse:
  189.    Jörg Falkenberg
  190.    Windsheimer Straße 53
  191.    8500 Nürnberg 60
  192.  
  193.  Ein Gruß an alle Informatiker, die immer noch glauben, daß sich Programme
  194. nur unter Zuhilfenahme von Struktogrammen etc. erstellen lassen...
  195.  
  196. Nürnberg, 27.07.1990
  197.  
  198.